package com.wjjun.test.ui

import android.Manifest
import android.app.Activity
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothDevice
import android.bluetooth.BluetoothManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.PackageManager
import android.os.Build
import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.core.app.ActivityCompat
import androidx.databinding.ViewDataBinding
import com.wjjun.app.R
import com.wjjun.base.ui.activity.BaseBindingActivity
import com.wjjun.test.ui.viewmodel.TestBleViewModel

class TestBleActivity : BaseBindingActivity<TestBleViewModel,ViewDataBinding>() {
    //
//    lateinit var bluetoothManager :BluetoothManager
//    lateinit var bluetoothAdapter : BluetoothAdapter
//
//    var isRegisterReceiver = false
//
//
//    private val receiver = object : BroadcastReceiver(){
//        override fun onReceive(context: Context?, intent: Intent?) {
//
//            when(intent?.action){
//                BluetoothDevice.ACTION_FOUND->{
//                    val device : BluetoothDevice? = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)
//
//                    if (ActivityCompat.checkSelfPermission(
//                            this@TestBleActivity ,
//                            Manifest.permission.BLUETOOTH_CONNECT
//                        ) != PackageManager.PERMISSION_GRANTED
//                    ) {
//                        return
//                    }
//                    if( device != null){
//                        viewModel.appendLog("发现新设备: ${device.name}, 地址: ${device.address}")
//                    }
//                }
//            }
//        }
//    }
//
//    override fun initViews() {
//    }
//
//    override fun initContent() {
//    }
//
//    @RequiresApi(Build.VERSION_CODES.M)
//    override fun initParams() {
//        initBluetooth()
//    }
//
//    @RequiresApi(Build.VERSION_CODES.M)
//    fun  initBluetooth(){
//        bluetoothManager = getSystemService(BluetoothManager::class.java)
//        bluetoothAdapter = bluetoothManager.adapter
//    }
//
//    override fun onClick(view: View) {
//        when(view.id){
//            R.id.btn_open -> {//开启
//                openBle()
//            }
//            R.id.btn_find->{//查看已有设备
//                findSavedDevices()
//            }
//            R.id.btn_scan->{//搜索
//                scan()
//            }
//            R.id.btn_show->{
//                showMe()
//            }
//        }
//    }
//
//    private fun openBle(){
//        if (!bluetoothAdapter.isEnabled) {
//            if (ActivityCompat.checkSelfPermission(
//                    this,
//                    Manifest.permission.BLUETOOTH_CONNECT
//                ) != PackageManager.PERMISSION_GRANTED
//            ) {
//                return
//            }
//            val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
//            startActivityForResult(enableBtIntent, 101)
//            return
//        }
//    }
//
//    val requestDataLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){result->
//                if( result.resultCode == Activity.RESULT_OK){
//                    openBle()
//                }else{
//                    viewModel.appendLog("打开蓝牙失败")
//                }
//                if(  result.resultCode == Activity.RESULT_OK){
//                    viewModel.appendLog("显示自己成功")
//                }else{
//                    viewModel.appendLog("显示自己失败")
//                }
//    }
//
//    private fun findSavedDevices(){
//        if (ActivityCompat.checkSelfPermission(
//                this,
//                Manifest.permission.BLUETOOTH_CONNECT
//            ) != PackageManager.PERMISSION_GRANTED
//        ) {
//            return
//        }
//        val pairedDevices =  bluetoothAdapter.bondedDevices
//        pairedDevices.forEach{ device ->
//            viewModel.appendLog("已有设备: ${device.name}, 地址: ${device.address}")
//        }
//    }
//
//    private fun scan(){
//        if( !isRegisterReceiver ){
//            try {
//                registerReceiver(receiver, IntentFilter(BluetoothDevice.ACTION_FOUND))
//                isRegisterReceiver = true
//                viewModel.appendLog("注册广播成功")
//            }catch (e:java.lang.Exception){
//                viewModel.appendLog("注册广播失败")
//            }
//        }
//    }
//
//    private fun  showMe(){
//        val discoverableIntent: Intent = Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE).apply {
//            putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300)
//        }
//        startActivityForResult(discoverableIntent, 102)
//    }
//
//    override fun onDestroy() {
//        super.onDestroy()
//        unregisterReceiver(receiver)
//        isRegisterReceiver = false
//    }
    override fun initContent() {
        TODO("Not yet implemented")
    }

    override fun initParams() {
        TODO("Not yet implemented")
    }

    override fun onClick(view: View) {
        TODO("Not yet implemented")
    }
}